package com.l;

/**
 * Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.
 *
 * Example 1:
 *
 * Input: 121
 * Output: true
 * Example 2:
 *
 * Input: -121
 * Output: false
 * Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
 * Example 3:
 *
 * Input: 10
 * Output: false
 * Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
 * Follow up:
 *
 * Coud you solve it without converting the integer to a string?
 */
public class Palindrome_Number {
    public boolean isPalindrome(int x) {
        String value = String.valueOf(x);
        char[] chars = value.toCharArray();
        boolean isPalindrome = true;
        for (int i = 0; i < chars.length; i++) {
            char first = chars[i];
            char last = chars[chars.length - 1 - i];
            if (first == last) {
                continue;
            }else {
                return false;
            }
        }
        return isPalindrome;
    }

    //others answer
//    public boolean isPalindrome(int x) {
//        if (x<0 || (x!=0 && x%10==0)) return false;
//        int rev = 0;
//        while (x>rev){
//            rev = rev*10 + x%10;
//            x = x/10;
//        }
//        return (x==rev || x==rev/10);
//    }

    public static void main(String[] args) {
        Palindrome_Number number = new Palindrome_Number();
        number.isPalindrome(121);
    }
}
